#ifndef _WINDOW_H_
#define _WINDOW_H_

#include <container.h>

#include <map>
#include <iostream>

namespace lgb_gtk
{

  using namespace std;
 
  enum WindowStyle
  {
    WINDOW_NORMAL = 0
  };

  class Window : public Container
  {
  protected:
    WindowStyle style;

    map<int (*)(void *) , void*> CloseFunctions;

    int CloseFunctionsBase();

  public:
    virtual int Show() = 0;
    virtual int Hide() = 0;
    virtual int SetTitle(string title) = 0;

    int AddCloseEventListener(int (*f)(void *data) , void *newData);
    int RemoveCloseEventListener(int (*f)(void *data));
    string Type(){ return "Window"; }
  };
  
}

#endif
